[INFO] fetching crate naru-config 0.7.0...
[INFO] testing naru-config-0.7.0 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate naru-config 0.7.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate naru-config 0.7.0
[INFO] finished tweaking crates.io crate naru-config 0.7.0
[INFO] tweaked toml for crates.io crate naru-config 0.7.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate naru-config 0.7.0 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate naru-config 0.7.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 904e43df0f9c30eff19bd94d2df31465e079827787ca3139fd7b87b92ea0a896
[INFO] running `Command { std: "docker" "start" "-a" "904e43df0f9c30eff19bd94d2df31465e079827787ca3139fd7b87b92ea0a896", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "904e43df0f9c30eff19bd94d2df31465e079827787ca3139fd7b87b92ea0a896", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "904e43df0f9c30eff19bd94d2df31465e079827787ca3139fd7b87b92ea0a896", kill_on_drop: false }`
[INFO] [stdout] 904e43df0f9c30eff19bd94d2df31465e079827787ca3139fd7b87b92ea0a896
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 900e25b95f8b780e9772f66f192c3d4a631ccd32f01f6cd25fadc26ef0e86d61
[INFO] running `Command { std: "docker" "start" "-a" "900e25b95f8b780e9772f66f192c3d4a631ccd32f01f6cd25fadc26ef0e86d61", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling zmij v1.0.16
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling dialoguer v0.12.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling naru-config v0.7.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `verify_log_integrity`
[INFO] [stdout]  --> src/core/audit_log.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::audit_chain::{verify_log_integrity, AuditChain};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::audit_chain::verify_log_integrity`
[INFO] [stdout]  --> src/core/audit.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::core::audit_chain::verify_log_integrity;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_recent_logs`
[INFO] [stdout]  --> src/core/audit.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use crate::core::audit_log::{get_recent_logs, log_action};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_sanitizer::normalize_path`
[INFO] [stdout]   --> src/core/security.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use path_sanitizer::normalize_path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_sanitizer::sanitize_file_path_internal`
[INFO] [stdout]   --> src/core/security.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use path_sanitizer::sanitize_file_path_internal;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::is_valid_config_key`
[INFO] [stdout]   --> src/core/security.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use input_validator::is_valid_config_key;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::is_valid_environment_name`
[INFO] [stdout]   --> src/core/security.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use input_validator::is_valid_environment_name;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::normalize_config_key`
[INFO] [stdout]   --> src/core/security.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use input_validator::normalize_config_key;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::normalize_environment_name`
[INFO] [stdout]   --> src/core/security.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use input_validator::normalize_environment_name;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_security::get_file_size`
[INFO] [stdout]   --> src/core/security.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use file_security::get_file_size;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_security::is_file_readable`
[INFO] [stdout]   --> src/core/security.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use file_security::is_file_readable;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_security::is_file_writable`
[INFO] [stdout]   --> src/core/security.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use file_security::is_file_writable;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::type_validator::*`
[INFO] [stdout]   --> src/core/validation.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub use crate::core::type_validator::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::string_validator::*`
[INFO] [stdout]   --> src/core/validation.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub use crate::core::string_validator::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `verify_log_integrity`
[INFO] [stdout]  --> src/core/audit_log.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::audit_chain::{verify_log_integrity, AuditChain};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::audit_chain::verify_log_integrity as verify_audit_log`
[INFO] [stdout]    --> src/core/audit_log.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub use crate::core::audit_chain::verify_log_integrity as verify_audit_log;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error_kind::NaruError`
[INFO] [stdout]   --> src/core/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use error_kind::NaruError;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error_kind::NaruResult`
[INFO] [stdout]   --> src/core/mod.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use error_kind::NaruResult;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config_model::ConfigFile`
[INFO] [stdout]   --> src/core/mod.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub use config_model::ConfigFile;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config_model::ConfigValueEntry`
[INFO] [stdout]   --> src/core/mod.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub use config_model::ConfigValueEntry;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config_model::EnvironmentConfig`
[INFO] [stdout]   --> src/core/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub use config_model::EnvironmentConfig;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schema_model::FieldDefinition`
[INFO] [stdout]   --> src/core/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub use schema_model::FieldDefinition;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schema_model::SchemaFile`
[INFO] [stdout]   --> src/core/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub use schema_model::SchemaFile;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schema_model::ValidationRules`
[INFO] [stdout]   --> src/core/mod.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub use schema_model::ValidationRules;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `backup_model::BackupData`
[INFO] [stdout]   --> src/core/mod.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub use backup_model::BackupData;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format_trait::ConfigFormat`
[INFO] [stdout]   --> src/core/mod.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub use format_trait::ConfigFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `json_format::JsonFormat`
[INFO] [stdout]   --> src/core/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub use json_format::JsonFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `properties_format::PropertiesFormat`
[INFO] [stdout]   --> src/core/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub use properties_format::PropertiesFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml_format::TomlFormat`
[INFO] [stdout]   --> src/core/mod.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub use toml_format::TomlFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `validation::validate_value`
[INFO] [stdout]   --> src/core/mod.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub use validation::validate_value;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_config_and_schema`, `validate`, `config`, `schema`, `timestamp`, and `backup_version` are never used
[INFO] [stdout]   --> src/core/backup_model.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl BackupData {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_config_and_schema(config: ConfigFile, schema: SchemaFile) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn config(&self) -> &ConfigFile {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn schema(&self) -> &SchemaFile {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn timestamp(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn backup_version(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BackupMetadata` is never constructed
[INFO] [stdout]   --> src/core/backup_model.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct BackupMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_backup` is never used
[INFO] [stdout]   --> src/core/backup_model.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl BackupMetadata {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 66 |     pub fn from_backup(backup: &BackupData) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_environment`, `get_environment`, and `get_environment_mut` are never used
[INFO] [stdout]   --> src/core/config_model.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl ConfigFile {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 45 |     pub fn new(project_name: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn add_environment(&mut self, name: &str) -> &mut EnvironmentConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_environment(&self, name: &str) -> Option<&EnvironmentConfig> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn get_environment_mut(&mut self, name: &str) -> Option<&mut EnvironmentConfig> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/config_model.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl EnvironmentConfig {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  70 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn with_parent(parent: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn set_value(&mut self, key: &str, value: ConfigValueEntry) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn get_value(&self, key: &str) -> Option<&ConfigValueEntry> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn remove_value(&mut self, key: &str) -> Option<ConfigValueEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn keys(&self) -> impl Iterator<Item = &String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn values(&self) -> impl Iterator<Item = &ConfigValueEntry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/schema_model.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl SchemaFile {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new(version: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn add_field(&mut self, field: FieldDefinition) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_field(&self, key: &str) -> Option<&FieldDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_field_mut(&mut self, key: &str) -> Option<&mut FieldDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn remove_field(&mut self, key: &str) -> Option<FieldDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn iter(&self) -> impl Iterator<Item = &FieldDefinition> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/schema_model.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl FieldDefinition {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  69 |     pub fn new(key: &str, r#type: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn with_description(mut self, description: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn with_validation(mut self, validation: ValidationRules) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn secret(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn is_string(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn is_integer(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn is_boolean(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/schema_model.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl ValidationRules {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_min_length(mut self, min: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn with_max_length(mut self, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn with_length_range(mut self, min: usize, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn with_min_value(mut self, min: i64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn with_max_value(mut self, max: i64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn with_value_range(mut self, min: i64, max: i64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_pattern(mut self, pattern: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty_string` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn is_empty_string(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_whitespace_only` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn is_whitespace_only(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_string_length` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn is_valid_string_length(value: &str, min: usize, max: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains_control_characters` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn contains_control_characters(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains_null_byte` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn contains_null_byte(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_characters` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn count_characters(value: &str) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_bytes` is never used
[INFO] [stdout]   --> src/core/string_validator.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn count_bytes(value: &str) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_boolean_strict` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn validate_boolean_strict(value: &str) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_integer` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn is_valid_integer(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_boolean` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn is_valid_boolean(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hex_string` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn is_hex_string(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_octal_string` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn is_octal_string(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_binary_string` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn is_binary_string(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_scientific_notation` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn is_scientific_notation(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_leading_plus` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn has_leading_plus(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_leading_zeros` is never used
[INFO] [stdout]   --> src/core/type_validator.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn has_leading_zeros(value: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_value` is never used
[INFO] [stdout]   --> src/core/validator.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn is_valid_value(value: &str, field: &FieldDefinition) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_validation_error` is never used
[INFO] [stdout]   --> src/core/validator.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn get_validation_error(value: &str, field: &FieldDefinition) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `extension` are never used
[INFO] [stdout]  --> src/core/format_trait.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait ConfigFormat: Send + Sync {
[INFO] [stdout]   |           ------------ methods in this trait
[INFO] [stdout] 5 |     fn name(&self) -> &str;
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 6 |     fn extension(&self) -> &str;
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FormatDetector` is never used
[INFO] [stdout]   --> src/core/format_trait.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait FormatDetector {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_format_from_extension` is never used
[INFO] [stdout]   --> src/core/format_trait.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn detect_format_from_extension(extension: &str) -> Option<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_format_from_content` is never used
[INFO] [stdout]   --> src/core/format_trait.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn detect_format_from_content(content: &str) -> Option<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_json` is never used
[INFO] [stdout]   --> src/core/json_format.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn serialize_json(config: &ConfigFile) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_json` is never used
[INFO] [stdout]   --> src/core/json_format.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn deserialize_json(data: &str) -> Result<ConfigFile> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_json_pretty` is never used
[INFO] [stdout]   --> src/core/json_format.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn serialize_json_pretty(config: &ConfigFile) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_properties` is never used
[INFO] [stdout]   --> src/core/properties_format.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn serialize_properties(config: &ConfigFile) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_properties` is never used
[INFO] [stdout]   --> src/core/properties_format.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn deserialize_properties(data: &str) -> Result<ConfigFile> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_toml` is never used
[INFO] [stdout]   --> src/core/toml_format.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn serialize_toml(config: &ConfigFile) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_toml` is never used
[INFO] [stdout]   --> src/core/toml_format.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn deserialize_toml(data: &str) -> Result<ConfigFile> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_file_readable` is never used
[INFO] [stdout]   --> src/core/file_security.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn is_file_readable(path: &Path) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_file_writable` is never used
[INFO] [stdout]   --> src/core/file_security.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn is_file_writable(path: &Path) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_size` is never used
[INFO] [stdout]   --> src/core/file_security.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn get_file_size(path: &Path) -> Result<u64, &'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_environment_name` is never used
[INFO] [stdout]   --> src/core/input_validator.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn normalize_environment_name(name: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_config_key` is never used
[INFO] [stdout]   --> src/core/input_validator.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn normalize_config_key(key: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_environment_name` is never used
[INFO] [stdout]   --> src/core/input_validator.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn is_valid_environment_name(name: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_config_key` is never used
[INFO] [stdout]   --> src/core/input_validator.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn is_valid_config_key(key: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_path_traversal` is never used
[INFO] [stdout]   --> src/core/path_sanitizer.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn is_path_traversal(path: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_absolute_path` is never used
[INFO] [stdout]   --> src/core/path_sanitizer.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn is_absolute_path(path: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_null_byte` is never used
[INFO] [stdout]   --> src/core/path_sanitizer.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn has_null_byte(path: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt_file` is never used
[INFO] [stdout]  --> src/core/file_crypto.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn encrypt_file(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_file` is never used
[INFO] [stdout]   --> src/core/file_crypto.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn decrypt_file(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `derive_key` is never used
[INFO] [stdout]   --> src/core/key_derivation.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn derive_key(password: &str, salt: &[u8]) -> Result<[u8; 32], Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyRotation` is never constructed
[INFO] [stdout]  --> src/core/key_rotation.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct KeyRotation {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `rotate_value`, and `rotate_config` are never used
[INFO] [stdout]   --> src/core/key_rotation.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl KeyRotation {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn rotate_value(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn rotate_config(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_encryption_key` is never used
[INFO] [stdout]   --> src/core/key_rotation.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn generate_encryption_key() -> [u8; 32] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_to_hex` is never used
[INFO] [stdout]   --> src/core/key_rotation.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn key_to_hex(key: &[u8; 32]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_key` is never used
[INFO] [stdout]   --> src/core/key_rotation.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn hex_to_key(hex_str: &str) -> Result<[u8; 32], Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `verify_chain` and `verify_integrity` are never used
[INFO] [stdout]   --> src/core/audit_chain.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AuditChain {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn verify_chain(entries: &[AuditLogEntry]) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn verify_integrity(entries: &[AuditLogEntry]) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_log_integrity` is never used
[INFO] [stdout]   --> src/core/audit_chain.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn verify_log_integrity(log_path: &str) -> Result<bool, Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_recent_logs` is never used
[INFO] [stdout]   --> src/core/audit_log.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn get_recent_logs(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicWriter` is never constructed
[INFO] [stdout]  --> src/core/atomic_ops.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct AtomicWriter {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `write`, `write_with_content`, `commit`, and `rollback` are never used
[INFO] [stdout]   --> src/core/atomic_ops.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl AtomicWriter {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(target_path: &Path) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn write<F>(target_path: &Path, mut f: F) -> Result<(), std::io::Error>
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn write_with_content(&self, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn commit(self) -> Result<(), std::io::Error> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn rollback(self) -> Result<(), std::io::Error> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atomic_write` is never used
[INFO] [stdout]   --> src/core/atomic_ops.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn atomic_write<P: AsRef<Path>>(path: P, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atomic_read` is never used
[INFO] [stdout]   --> src/core/atomic_ops.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn atomic_read<P: AsRef<Path>>(path: P) -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atomic_update` is never used
[INFO] [stdout]   --> src/core/atomic_ops.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn atomic_update<P: AsRef<Path>, F>(path: P, mut f: F) -> Result<(), std::io::Error>
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_json_file` is never used
[INFO] [stdout]  --> src/core/file_io.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_json_file<P: AsRef<Path>>(path: P) -> Result<String, std::io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_json_file` is never used
[INFO] [stdout]  --> src/core/file_io.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn write_json_file<P: AsRef<Path>>(path: P, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_json_file_or_default` is never used
[INFO] [stdout]   --> src/core/file_io.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn read_json_file_or_default<P: AsRef<Path>, T: serde::de::DeserializeOwned + Default>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_exists` is never used
[INFO] [stdout]   --> src/core/file_io.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn file_exists<P: AsRef<Path>>(path: P) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_directory` is never used
[INFO] [stdout]   --> src/core/file_io.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn create_directory<P: AsRef<Path>>(path: P) -> Result<(), std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_file` is never used
[INFO] [stdout]   --> src/core/file_io.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn delete_file<P: AsRef<Path>>(path: P) -> Result<(), std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_directory` is never used
[INFO] [stdout]   --> src/core/file_io.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn read_directory<P: AsRef<Path>>(path: P) -> Result<Vec<String>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimitMiddleware` is never constructed
[INFO] [stdout]  --> src/core/command_middleware.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RateLimitMiddleware {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `with_default`, `strict`, and `lenient` are never used
[INFO] [stdout]   --> src/core/command_middleware.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl RateLimitMiddleware {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 10 |     pub fn new(config: RateLimitConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn with_default() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn strict() -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn lenient() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditMiddleware` is never constructed
[INFO] [stdout]   --> src/core/command_middleware.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct AuditMiddleware {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/core/command_middleware.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl AuditMiddleware {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 61 |     pub fn new(log_path: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationMiddleware` is never constructed
[INFO] [stdout]   --> src/core/command_middleware.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct ValidationMiddleware {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/core/command_middleware.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl ValidationMiddleware {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 82 |     pub fn new(strict: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CommandMiddleware` is never used
[INFO] [stdout]  --> src/core/middleware.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait CommandMiddleware: Send + Sync {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandContext` is never constructed
[INFO] [stdout]  --> src/core/middleware.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CommandContext {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_environment`, and `rate_limit_key` are never used
[INFO] [stdout]   --> src/core/middleware.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl CommandContext {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new(command_name: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn with_environment(mut self, env: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn rate_limit_key(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MiddlewareError` is never used
[INFO] [stdout]   --> src/core/middleware.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum MiddlewareError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiddlewareChain` is never constructed
[INFO] [stdout]   --> src/core/middleware.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct MiddlewareChain {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `before_execute`, and `execute` are never used
[INFO] [stdout]   --> src/core/middleware.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl MiddlewareChain {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 72 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn add<M: CommandMiddleware + 'static>(mut self, middleware: M) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn before_execute(&self, context: &CommandContext) -> Result<(), MiddlewareError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn execute<F, R>(&self, context: &CommandContext, mut f: F) -> Result<R, MiddlewareError>
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.52s
[INFO] running `Command { std: "docker" "inspect" "900e25b95f8b780e9772f66f192c3d4a631ccd32f01f6cd25fadc26ef0e86d61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "900e25b95f8b780e9772f66f192c3d4a631ccd32f01f6cd25fadc26ef0e86d61", kill_on_drop: false }`
[INFO] [stdout] 900e25b95f8b780e9772f66f192c3d4a631ccd32f01f6cd25fadc26ef0e86d61
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 153ad248d06c087729940f43c35bc8f5ddeaedd52369249f75d9364b67ba8811
[INFO] running `Command { std: "docker" "start" "-a" "153ad248d06c087729940f43c35bc8f5ddeaedd52369249f75d9364b67ba8811", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling sdd v3.0.10
[INFO] [stderr]    Compiling serial_test_derive v3.3.1
[INFO] [stdout] warning: unused import: `verify_log_integrity`
[INFO] [stdout]  --> src/core/audit_log.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::audit_chain::{verify_log_integrity, AuditChain};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling scc v2.4.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling serial_test v3.3.1
[INFO] [stderr]    Compiling naru-config v0.7.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `file_crypto`
[INFO] [stdout]   --> src/core/crypto.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         use file_crypto::{decrypt_file, encrypt_file};
[INFO] [stdout]    |             ^^^^^^^^^^^ use of unresolved module or unlinked crate `file_crypto`
[INFO] [stdout]    |
[INFO] [stdout] help: to make use of source file src/core/file_crypto.rs, use `mod file_crypto` in this file to declare the module
[INFO] [stdout]   --> src/lib.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 + mod file_crypto;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/backup_model.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     use std::collections::HashMap;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/json_format.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     use std::collections::HashMap;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]   --> src/core/audit_chain.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     use tempfile::TempDir;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `file_crypto`
[INFO] [stdout]   --> src/core/crypto.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         use file_crypto::{decrypt_file, encrypt_file};
[INFO] [stdout]    |             ^^^^^^^^^^^ use of unresolved module or unlinked crate `file_crypto`
[INFO] [stdout]    |
[INFO] [stdout] help: to make use of source file src/core/file_crypto.rs, use `mod file_crypto` in this file to declare the module
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + mod file_crypto;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]    --> src/core/persistence.rs:919:22
[INFO] [stdout]     |
[INFO] [stdout] 919 |         let result = save_json("../traversal.json", &"data");
[INFO] [stdout]     |                      ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]    --> src/core/persistence.rs:930:45
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let result: Result<ConfigFile, _> = load_json("non_existent.json");
[INFO] [stdout]     |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]    --> src/core/persistence.rs:992:45
[INFO] [stdout]     |
[INFO] [stdout] 992 |         let result: Result<ConfigFile, _> = load_json("some_dir");
[INFO] [stdout]     |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1128:38
[INFO] [stdout]      |
[INFO] [stdout] 1128 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1260:38
[INFO] [stdout]      |
[INFO] [stdout] 1260 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]     --> src/core/persistence.rs:1266:9
[INFO] [stdout]      |
[INFO] [stdout] 1266 |         save_json(CONFIG_FILE, &config).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1436:38
[INFO] [stdout]      |
[INFO] [stdout] 1436 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]     --> src/core/persistence.rs:1520:9
[INFO] [stdout]      |
[INFO] [stdout] 1520 |         save_json(CONFIG_FILE, &large_config).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1521:41
[INFO] [stdout]      |
[INFO] [stdout] 1521 |         let loaded_config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1730:38
[INFO] [stdout]      |
[INFO] [stdout] 1730 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_sanitizer::normalize_path`
[INFO] [stdout]   --> src/core/security.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use path_sanitizer::normalize_path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_sanitizer::sanitize_file_path_internal`
[INFO] [stdout]   --> src/core/security.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use path_sanitizer::sanitize_file_path_internal;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::is_valid_config_key`
[INFO] [stdout]   --> src/core/security.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use input_validator::is_valid_config_key;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::is_valid_environment_name`
[INFO] [stdout]   --> src/core/security.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use input_validator::is_valid_environment_name;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::normalize_config_key`
[INFO] [stdout]   --> src/core/security.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use input_validator::normalize_config_key;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input_validator::normalize_environment_name`
[INFO] [stdout]   --> src/core/security.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use input_validator::normalize_environment_name;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_security::get_file_size`
[INFO] [stdout]   --> src/core/security.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use file_security::get_file_size;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_security::is_file_readable`
[INFO] [stdout]   --> src/core/security.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use file_security::is_file_readable;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_security::is_file_writable`
[INFO] [stdout]   --> src/core/security.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use file_security::is_file_writable;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::type_validator::*`
[INFO] [stdout]   --> src/core/validation.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub use crate::core::type_validator::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::string_validator::*`
[INFO] [stdout]   --> src/core/validation.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub use crate::core::string_validator::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/backup_model.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     use std::collections::HashMap;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/json_format.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     use std::collections::HashMap;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]   --> src/core/audit_chain.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     use tempfile::TempDir;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::audit_chain::verify_log_integrity as verify_audit_log`
[INFO] [stdout]    --> src/core/audit_log.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub use crate::core::audit_chain::verify_log_integrity as verify_audit_log;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error_kind::NaruError`
[INFO] [stdout]   --> src/core/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use error_kind::NaruError;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error_kind::NaruResult`
[INFO] [stdout]   --> src/core/mod.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use error_kind::NaruResult;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config_model::ConfigFile`
[INFO] [stdout]   --> src/core/mod.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub use config_model::ConfigFile;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config_model::ConfigValueEntry`
[INFO] [stdout]   --> src/core/mod.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub use config_model::ConfigValueEntry;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config_model::EnvironmentConfig`
[INFO] [stdout]   --> src/core/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub use config_model::EnvironmentConfig;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schema_model::FieldDefinition`
[INFO] [stdout]   --> src/core/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub use schema_model::FieldDefinition;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schema_model::SchemaFile`
[INFO] [stdout]   --> src/core/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub use schema_model::SchemaFile;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schema_model::ValidationRules`
[INFO] [stdout]   --> src/core/mod.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub use schema_model::ValidationRules;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `backup_model::BackupData`
[INFO] [stdout]   --> src/core/mod.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub use backup_model::BackupData;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format_trait::ConfigFormat`
[INFO] [stdout]   --> src/core/mod.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub use format_trait::ConfigFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `json_format::JsonFormat`
[INFO] [stdout]   --> src/core/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub use json_format::JsonFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `properties_format::PropertiesFormat`
[INFO] [stdout]   --> src/core/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub use properties_format::PropertiesFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml_format::TomlFormat`
[INFO] [stdout]   --> src/core/mod.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub use toml_format::TomlFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `validation::validate_value`
[INFO] [stdout]   --> src/core/mod.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub use validation::validate_value;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]    --> src/core/persistence.rs:919:22
[INFO] [stdout]     |
[INFO] [stdout] 919 |         let result = save_json("../traversal.json", &"data");
[INFO] [stdout]     |                      ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]    --> src/core/persistence.rs:930:45
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let result: Result<ConfigFile, _> = load_json("non_existent.json");
[INFO] [stdout]     |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]    --> src/core/persistence.rs:992:45
[INFO] [stdout]     |
[INFO] [stdout] 992 |         let result: Result<ConfigFile, _> = load_json("some_dir");
[INFO] [stdout]     |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1128:38
[INFO] [stdout]      |
[INFO] [stdout] 1128 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1260:38
[INFO] [stdout]      |
[INFO] [stdout] 1260 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]     --> src/core/persistence.rs:1266:9
[INFO] [stdout]      |
[INFO] [stdout] 1266 |         save_json(CONFIG_FILE, &config).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1436:38
[INFO] [stdout]      |
[INFO] [stdout] 1436 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]     --> src/core/persistence.rs:1520:9
[INFO] [stdout]      |
[INFO] [stdout] 1520 |         save_json(CONFIG_FILE, &large_config).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1521:41
[INFO] [stdout]      |
[INFO] [stdout] 1521 |         let loaded_config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]     --> src/core/persistence.rs:1730:38
[INFO] [stdout]      |
[INFO] [stdout] 1730 |         let mut config: ConfigFile = load_json(CONFIG_FILE).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]    --> src/deep_security_tests.rs:161:53
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     match crate::core::persistence::load_json(crate::core::constants::CONFIG_FILE) {
[INFO] [stdout]     |                                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::save_json`: Use atomic_update_config for config files to prevent race conditions. This function is not atomic and can cause data loss in concurrent scenarios.
[INFO] [stdout]    --> src/deep_security_tests.rs:175:43
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 crate::core::persistence::save_json(crate::core::constants::CONFIG_FILE, &config)
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `core::persistence::load_json`: Use atomic_read_config or lock_file for safer concurrent access patterns.
[INFO] [stdout]    --> src/deep_security_tests.rs:184:45
[INFO] [stdout]     |
[INFO] [stdout] 184 |             match crate::core::persistence::load_json(crate::core::constants::CONFIG_FILE) {
[INFO] [stdout]     |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `file_io::tests::test_read_json_file_or_default::Data` doesn't implement `Debug`
[INFO] [stdout]   --> src/core/file_io.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         assert_eq!(data, Data::default());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `file_io::tests::test_read_json_file_or_default::Data` or manually `impl Debug for file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout] help: consider annotating `file_io::tests::test_read_json_file_or_default::Data` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 85 +         #[derive(Debug)]
[INFO] [stdout] 86 |         struct Data {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `file_io::tests::test_read_json_file_or_default::Data` doesn't implement `Debug`
[INFO] [stdout]   --> src/core/file_io.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         assert_eq!(data, Data::default());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `file_io::tests::test_read_json_file_or_default::Data` or manually `impl Debug for file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout] help: consider annotating `file_io::tests::test_read_json_file_or_default::Data` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 85 +         #[derive(Debug)]
[INFO] [stdout] 86 |         struct Data {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/backup_model.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut env = config.add_environment("production");
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/backup_model.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut env = config.add_environment("production");
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `file_io::tests::test_read_json_file_or_default::Data` doesn't implement `Debug`
[INFO] [stdout]   --> src/core/file_io.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         assert_eq!(data, Data::default());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `file_io::tests::test_read_json_file_or_default::Data` or manually `impl Debug for file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout] help: consider annotating `file_io::tests::test_read_json_file_or_default::Data` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 85 +         #[derive(Debug)]
[INFO] [stdout] 86 |         struct Data {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `file_io::tests::test_read_json_file_or_default::Data` doesn't implement `Debug`
[INFO] [stdout]   --> src/core/file_io.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         assert_eq!(data, Data::default());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `file_io::tests::test_read_json_file_or_default::Data` or manually `impl Debug for file_io::tests::test_read_json_file_or_default::Data`
[INFO] [stdout] help: consider annotating `file_io::tests::test_read_json_file_or_default::Data` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 85 +         #[derive(Debug)]
[INFO] [stdout] 86 |         struct Data {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/audit_entry.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut entry = AuditLogEntry::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `naru-config` (lib test) due to 3 previous errors; 16 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/backup_model.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut env = config.add_environment("production");
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/backup_model.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut env = config.add_environment("production");
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/audit_entry.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut entry = AuditLogEntry::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `naru-config` (bin "naru" test) due to 3 previous errors; 45 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "153ad248d06c087729940f43c35bc8f5ddeaedd52369249f75d9364b67ba8811", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "153ad248d06c087729940f43c35bc8f5ddeaedd52369249f75d9364b67ba8811", kill_on_drop: false }`
[INFO] [stdout] 153ad248d06c087729940f43c35bc8f5ddeaedd52369249f75d9364b67ba8811
